package com.xesj.util;

import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.Map;

public class LocationUtil 
{
	private static final double EARTH_RADIUS = 6378.137;

	private static double rad( double d )
    {
       return d * Math.PI / 180.0;
    }

	/** 
	 * @Title: getDistance 
	 * @Description 计算地球上任意两点(经纬度)距离 
	 * @param long1 	第一点经度
	 * @param lat1	 	第一点纬度
	 * @param long2		第二点经度	
	 * @param lat2		第二点纬度
	 * @return    两点之间的距离（单位：Km）
	 * @author Du.Wince 
	 * @date 2015年8月17日 下午5:46:52 
	 */
	public static double getDistance( double long1, double lat1, double long2, double lat2 )
	{  
	    double a, b, R;  
	    R = 6378137; // 地球半径  
	    lat1 = lat1 * Math.PI / 180.0;  
	    lat2 = lat2 * Math.PI / 180.0;  
	    a = lat1 - lat2;  
	    b = (long1 - long2) * Math.PI / 180.0;  
	    double d;  
	    double sa2, sb2;  
	    sa2 = Math.sin(a / 2.0);  
	    sb2 = Math.sin(b / 2.0);  
	    d = 2 * R * Math.asin( Math.sqrt( sa2 * sa2 + Math.cos(lat1) * Math.cos(lat2) * sb2 * sb2 ) );
	    
	    DecimalFormat df = new DecimalFormat( "#.00" );
	    d = Double.parseDouble( df.format( d ) );
	    return d;  
	}

	
	public static void main( String [] args )
	{
		//济南国际会展中心经纬度：117.11811  36.68484         
		//趵突泉：117.00999000000002  36.66123        
		System.out.println( getDistance( 117.11811, 36.68484, 117.00999000000002, 36.66123 ) ); 
	}
}
